Conventional computer program modules, such as application programs, provide a default user interface for all end users of the product. The program module comprises computer software code that generates the user interface. However, an end user cannot modify the default user interface without decompiling and rewriting the computer software code of the program module. Accordingly, conventional program modules provide a “take it or leave it” approach to presenting a user interface for the end user. If the end user finds the default user interface hard to use or lacking desired functionality, then the end user may search for another program module with a more user-friendly default user interface and having the desired functionality. Alternatively, the end user may develop a custom program module having the desired user interface and functionality. End users also may develop standardized operations and formatting based upon the format of information provided by a program module having the desired functionality. Such an end user will resist transitioning to a new program module providing improved functionality if the new user interface does not provide information in the existing format of their own business method.
To provide a more user-friendly default user interface, conventional program modules can offer a configurable user interface in which the end user can select preprogrammed features. Typically, the program module executes a set-up mode during installation by the end user. During the set-up mode, the end user can configure the default user interface by selecting predetermined options. The end user also can configure the default user interface at a subsequent time by selecting other predetermined options. The program module then displays the default user interface configured by the end user and having the selected options. However, the end user can select from only the predetermined options. Then, that program module presents a “take it or leave it” approach to providing a user interface having only options selected from an available set of predetermined display options. Thus, that prior type of configurable user interface does not overcome the problems of the conventional user interface discussed above.
Accordingly, there is need in the art for a program module user interface that can be customized by the end user. A need also exists for a user interface that the end user can customize without decompiling the program module's software code. Additionally, a need exists for a user interface that the end user can customize to include desired content and functionality for the end user's particular business method. A need also exists for associating a program module file with a custom user interface so that the program module displays the custom user interface upon opening the program module file. Furthermore, a need exists in the art for allowing an end user to switch between user interfaces without having to restart the program module.